#include <stdio.h>
#include <unistd.h>
#include <sys/select.h>

//使用selsect检测标准输入
int main()
{
    fd_set read_fds;   //定义一个fd集合
    FD_ZERO(&read_fds); //清空read_fds集合
    FD_SET(0, &read_fds); //将标准输入设置到这个集合里面

    for(;;) {
        printf("> ");
        fflush(stdout);
        int ret = select(1, &read_fds, NULL, NULL, NULL);
        if(ret < 0) {
            //select 错误返回
            perror("select");
            continue;
        }
        if(FD_ISSET(0, &read_fds)) {
            //数据就绪
            char buf[1024] = {0};
            read(0, buf, sizeof(buf) - 1);
            printf("input:%s",buf);
        } else {
            printf("error! invaild fd\n");
            continue;
        }
        FD_ZERO(&read_fds);
        FD_SET(0, &read_fds);
    }
    

    return 0;
}
